home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / text / font / ATEbeta5b.lha / Source-Code / atmDevLog.txt < prev   
Text File  |  1996-02-25  |  30KB  |  559 lines

  1. ATM Development log, started 21 AUG 1994
  2.  
  3. 20 JUN 94
  4. Began playing with OS patches.  Suceeded in patching OpenDiskFont().
  5. source code: diskfontpatch.c
  6.  
  7. 1 JUL 94
  8. Canada's Birthday.  Vacation!
  9.  
  10. 10 AUG 94
  11. Began playing with EXEC messages and Wait().  Unsuccessful in creating
  12. port messaging between two programs.  Will try later.
  13. source code: msgtest1.c and msgtest2.c  
  14.  
  15. 21 AUG 94
  16. Succeeded in EXEC message passing.  Also wrote first half of a Text() handler
  17. that manipulates fonts.  Uses an EXEC message port because this kind of
  18. handling must run within an AmigaDOS process.  Initially only prints font
  19. names that have matching .metric files.
  20. source code: port1.c, port2.c, textserver.c
  21.  
  22. 24 SEP 94
  23. Quite a long time... Managed to get a patch/messaging system working
  24. on OpenDiskFont().  Next step: Text()
  25.  
  26. 9 OCT 94
  27. Getting closer.  Encountered a curious problem patching Text().  I can't
  28. patch it the same way as OpenDiskFont().  I'll work on the font renderer
  29. until I can get some support.  However, working patch and server code
  30. for OpenDiskFont() completed.
  31. surce code: ATMserver.c, ATMpatch.c
  32.  
  33. 10 OCT 94 Happy Thanksgving Canada
  34. Will attempt to "merge" MKBmap and ATMServer together, so instead of just
  35. recording font names it generates fonts.  Since I can't patch Text() yet
  36. I'll have it render the whole font upon OpenDiskFont().  Will allow for
  37. single character rendering later.
  38. Also introduced new file format: the .atm file lists PostScript typeface
  39. names for regular, bold, italic, abd bolditalic.  MakeATMFont will allow
  40. for these styles by reading the TextAttr struct passed to it.  I still
  41. have to see about rendering these styled fonts with different names,
  42. to not confuse the operating system.  Question for CATS or whoever takes
  43. over for CATS: can several fonts in memory have the same name & size but
  44. different style flags?  
  45. source code: MakeATMFont.c, MakeBMAPFonts.c, MKBmap.c (Adrian Aylward)
  46.  
  47. 22 OCT 94
  48. Success!  Damn, after experimenting with MKBmap and being able to render
  49. a mixture of fonts, standard encoded and font-specific, and after finding
  50. a few post.library quirks, I could write a program that renders fonts and
  51. adds them to the system.
  52. Also sucessfully merged ATMserver and MakeATMFont to get, what appears
  53. to be, a running version of ATM.  With the patch in place I can render
  54. whole fonts and add them to the system for use, but rendering the whole
  55. charset takes 30 seconds on my '030/'882!  Gawd awful slow!  At least
  56. it looks like a working version of Adobe Type Manager!
  57. I remind myself to write Adrian Aylward and chastise him for pukey poor
  58. coding techniques!  I haven't seen so many "gotos" since my days in BASIC
  59. on the Commodore 64!
  60. source code: ATMpatch.c, ATMserverII.c
  61.  
  62. 23 OCT 94
  63. After realizing I'll need to patch a lot more functions to pass data to
  64. the server task, I wrote a general message passer that allocates one port
  65. for each patch.  Using an extended Message struct (ATMMessage) which includes
  66. reply port info, each patch calls ATMSendMsg() with its own ATMMessage
  67. struct, which includes its own reply port pointer.
  68. It's up to that patch to also clear its memory and send a cleanup call
  69. to ATMSendMsg().  However, the command to clean up must be sent through
  70. the patch!  This is handled differently for each patch, eg: NewOpenDiskFont()
  71. will clean up if it sees a TextAttr struct with FPF_REMOVED in its flags.
  72. NewText() will have a similar mechanism, possibly with a funny RastPort
  73. pointer like 0xFF40544C ("ÿATM").  This might work for all!  Hmmm...
  74. Will patch SetSoftStyle() to switch TextFont pointers etc to do neat stuff
  75. with different type styles.  I'll need to patch others but I don't know
  76. which ones until later.
  77. source code: ATMpatchII.c, ATMserver.c
  78.  
  79. 24 OCT 94
  80. Early... damn damn early.  Can't sleep, so I tried editing ATMServerII to
  81. handle the ATMMessage structs as ATMServer does.  Also uncovered a bug in
  82. memory freeing (I was freeing up the fonts OK, but I didn't free the 
  83. list entries!  Stupid, stupid, stupid) 
  84. Turns out that fixed a problem in the font renderer so it cleaned up
  85. better now.  
  86. Performance is unchanged (30 seconds to draw 223 characters... really)
  87. but now it works with the new ATMMessage format.  The cornerstone is now
  88. in place for the rest of ATM.
  89. source code: ATMpatchII.c, ATMserverII.c
  90.  
  91. 11 DEC 94
  92. Talk about asleep for a long time.  Been wrestling with the Text() patch
  93. on and off for six weeks until I realized a basic concept of Amiga
  94. programming: puuting the library base in A6 before making calls!!!!!!!!!
  95. Succeeded in patching Text() and OpenDiskFont() properly now, and I
  96. dumped my port creator routines for good.  Turns out EXEC will re-use
  97. memory chunks if you AllocVec() and FreeVec() chunks of the same size.
  98. This will put a tiny bit more overhead in processing... Oh well... I don't
  99. notice a performance hit on my '030-25 based Amiga 1000.  But it does
  100. cause Enforcer hits in DPaint IV.  What's Electronic Arts doing in there
  101. that no one else seems to do?
  102. I kept a general ATMSendMsg() function to simplify messaging within any
  103. new patches I create.  
  104. I'm thinking about combining the server and patch processess into one
  105. executable, but the idea of sending messages to myself seems silly.
  106. Server process can now record used characters and display them when the
  107. server exits.  
  108. source code: ATMpatchIII.c, ATMserver.c
  109.  
  110. 19 MAR 95
  111. After wrestling with a dying hard drive and re-building my computer I
  112. managed to complete a re-write of the ATMserver (ATMServerIV).  This will
  113. be the first official Alpha version, as it will serve as the basis for the
  114. Beta 1 I plan.  It also fully works!
  115. Managed to put much of the crucial external variables in a FontNode struct
  116. which will simplify the Text() server function.  Remaining external 
  117. variables must remain because post.library and post.h demand it.  I plan
  118. on writing a nice letter to Adrian Aylward about better programming 
  119. techniques on the Amiga, provided he has a fixed address.
  120. Added Style search in the FontNode's node name.  Currently the server
  121. supports ta_Style but I did not test this yet.  Many programs just open
  122. the plain style then SetSoftStyle() it.  I will catch this probably in
  123. Beta 2 (possibly in Beta 1 if it works out easily!) by patching 
  124. SetSoftStyle(), which will just swap the TextFont pointer in the RastPort
  125. to a designed style.  
  126. I also uncovered many nasty bugs in ATMserverIII which seemed to remove
  127. any Enforcer hits caused in DPaint IV.  
  128. Oh yes, a possible compiler bug in DICE 3.0: when using an unsigned short in
  129. a structure (pointer-referenced) in a calculation with signed ints, the 
  130. short often comes out wrong!  I had to create a temporary signed int and
  131. copy the unsigned short's value to it then calculate using the signed int.
  132. 32 hours of hair pulling uncovered this bug.  thphth.  Ever watch a font
  133. get rendered backwards?  How about printing Kickstart ROM data?  neat.
  134. source code: ATMserverIV.c
  135.  
  136. 26 MAR 95
  137. Back on a somewhat regular schedule.  I succeeded in a limited Text()
  138. patch which generates characters as required!  Very impressive except
  139. for one bug: It can only use one font at a time.  If I change typefaces
  140. and change back, it will use the last loaded typeface to fill in
  141. any new characters.  Not bad really.
  142. Managed to generate all of a TextFont except for character data too.
  143. Now the pre-rendering takes 1/3 less time (10 seconds for 223 chars is
  144. still too long in my opinion though.)
  145. I need to work out a safer way of switching typefaces within my server.
  146. The obvious techniques won't work (at least they were obvious to a non-
  147. PostScript programmer...) as they seem to lock the computer, leaving
  148. the server in an infinite loop state and locking the system on the next
  149. OpenDiskFont() or Text() call.  Perhaps a PostScript wizard can help.
  150. source code: ATMserverIVb.c
  151.  
  152. 27 MAR 95
  153. It's amazing what a little imagination can accomplish.  After checking
  154. the PostScript code that actually goes and GETS a typeface (beginning
  155. of MakeATMFont) I copied that code to the beginning of MakeATMChars.
  156. This allowed me to SAFELY change typefaces between calls of Text() and
  157. properly render characters on demand.  YES!!!!!
  158. Current copy of ATMServerIVb has lots of commented-out code so I will
  159. probably clear that out in IVc.  In IVc I can attempt to patch 
  160. SetSoftStyle() and swap fonts back and forth, allowing for TRUE bolds
  161. and TRUE italics!  This, and merging ATMPatch, will make up a first
  162. Beta 1 release of ATM for the Amiga.
  163. source code: ATMserverIVb.c
  164.  
  165. 28 MAR 95
  166. Making daily progress.  At this point I'm checking the multiple style
  167. capability of ATMserver.  After discovering a stupid bug in scanf() which
  168. treats the "-" as a white space character, I worked around it to get the
  169. typeface filenames I needed.  Now it can read multiple styles.
  170. I wonder, however, if the Amiga is really capable of handling multiple
  171. styles properly.  According to ARTM it actually lists four fonts with the
  172. same YSize but different styles!  But weird things happen as I switch
  173. between styles; displays get trashed, ARQ draws funny rotating graphics
  174. along window borders, DPaint IV locks up and sometimes will load the wrong
  175. style (If I load Times-Italic first it will use it instead of Times Normal).
  176. It may be how I'm handling the PostScript interpreter, and it's corrupting
  177. areas of memory.  I'm pretty sure I'm checking my memory usage but I need
  178. Mungwall and a serial terminal to know for sure.  
  179. source code: ATMserverIVb.c
  180.  
  181. 31 MAR 95
  182. Getting closer.  Uncovered a bug that would cause funny char drawing in
  183. characters above ASCII 127 (using signed chars instead of unsigned chars)
  184. so when I fixed that I could properly draw the extended characters.
  185. It also looks like either intuition or graphics.library can't handle 
  186. multiple styles properly.  Certainly intuition can't.  I'll try writing
  187. a better font test program (that uses graphics and diskfont calls instead).
  188. Managed to get Sushi running so I can trap Mungwall hits.  So far I'm not
  189. trashing memory but I noticed some ROM routines will access unused memory
  190. (0xABADCAFE) so I have to wonder how well the system is equipped for
  191. multiple styled fonts.  Worst case I can keep the alternate styles in
  192. RAM but not add them to the font list, then switch them using SetFont() in
  193. any SetSoftStyle() patch I write.
  194. source code: ATMserverIVb.c, ImageTesting.c
  195.  
  196. 1 APR 95
  197. Looks like Intuition's the April Fool.  Either that or there are nasty bugs
  198. in ImageTesting.c.  When I use graphics.library instead of Intuition to
  199. draw text I don't get any Enforcer hits or accesses to unused memory.  
  200. And I thought Intuition used graphics.library properly!
  201. SetSoftStyle() patch finshed and rather impressive!  Now the system can
  202. load and swap fonts as needed.  Biggest drawbacks are how Intuition uses
  203. SetSoftStyle() so often and when a program loads a font and SetSoftStyle()'s
  204. it by default (like how DPaint IV does!)  Also fixed a bug; because Intuition
  205. calls SetSoftStyle() and Text() one after another I have to search quickly
  206. in the patches, and get out fast!  The result is the mouse pointer will
  207. freeze for a fraction of a second as Intuition draws menus and Workbench
  208. draws disk windows.  Not too bad on the '030 but I don't want to see it
  209. on a 68000!
  210. I will try to complete the single executable (patches and server in one)
  211. for release as Beta 1.  I still need to write a Text() handler process
  212. and read about Exec Semaphores.  Perhaps the server can share the fontlist
  213. with this handler to speed up searches for non-ATM fonts, but this won't be
  214. complete until Beta 2.
  215. source code: simplewbwindow.c, ATMserverIVc.c, ATMpatchIII.c
  216.  
  217. 2 APR 95
  218. Found a curious bug in DPaint IV.  It likes to ignore any font changes I make
  219. in SetSoftStyle() and probably just SetFont()s the original style back.
  220. It often won't display any style changes until you actually use the font.
  221. But when you use it it still works.
  222. Beta 1 release complete.  Managed to merge the patch and server processes into
  223. one executable and I started distribution.  Time to see how stable the system
  224. REALLY is.  I never had the opportunity to test this program on Release 3
  225. but my testing squad will.  I know EA did some fixes in DPaint IV so maybe
  226. a fixed version will work better.  I also need to see how other programs
  227. (like Excellence!) react.  
  228. Plenty of problems I need to fix for Beta 2!  The most obvious is how ATM
  229. handles italic and oblique typefaces.  I will need to pay closer attention
  230. to the bounding box info and position the characters better, so tails won't
  231. get chopped off etc, and to offset the gross spacing of italic chars by
  232. using negative CharKern values.  Beta 2 also needs the auxillary Text()
  233. handler process to eliminate the crazy freezing that Intuition does. But
  234. now that everything is in the same executable I can try performing searches
  235. through the list from the patches (using Exec Semaphores).
  236. source code: ATMbeta1.c
  237.  
  238. 14 APR 95
  239. Managed to introduce two changes.  The first fixes the italic tail-chop
  240. problem by using the Amiga's version of "kerning", using negative charKern
  241. values for certain characters, and by modifying the PostScript chop calls a
  242. bit.  Next I plan to compare the character spacing to that of an established
  243. application (probably PPage 3.0).
  244. The second introduces signal semaphores into ATM.  The patches can now search
  245. the font list themselves, and won't send ATMMessages unless they find fonts
  246. in the list.  Currently only the Text() and SetSoftStyle() patches do so, and
  247. this drastically cuts down on the mouse freezing Intuition causes by calling
  248. SetSoftStyle() and Text() in rapid succession (but noes not completely 
  249. eliminate them...) and this consequentially should allow terminal software
  250. to work better.
  251. For Beta 2 release I will compare the spacing info and see if I can improve
  252. on the spacing for italic typefaces.  I may have to resort to the AFMs for
  253. that, as well as for the bounding box info.  Beta 2 documentation should
  254. include typeface adding instructions too.  I won't do a nice installer or
  255. control panel until I'm sure the rendering engine works perfectly, and
  256. only for release in Beta 3.
  257. source code: ATMbeta1b.c
  258.  
  259. 22 APR 95
  260. Added ability to get spacing info and baseline from AFM files.  This and a
  261. bit of magic fixed my gross italic spacing.  I don't have accurate AFMs for
  262. TimesNewRoman so I get a bit of character chopping.  Other Oblique faces
  263. seem to work OK.  Spacing now closely matches Professionl Page's except
  264. the space character seems smaller in the .AFMs.  All this reduces setup
  265. time to four seconds, enough time to scan the AFM and read the typeface
  266. into PostScript VM.
  267. Nice Control Panel won't happen in time for Beta 2 release tomorrow so
  268. I'll settle for the command line for now.  The rendering engine MUST
  269. work perfectly, and I must know what applications really, really, work.
  270. Must send beta 2s to Gold Disk and O.I.C. and perhaps to other "big" Amiga
  271. software houses (if there is such a thing now...)
  272. source code: ATMbeta1c.c
  273.  
  274. 29 APR 95
  275. On tuesday I go for training for Microsoft Windows '95.  Yeah right.
  276. Fixed a couple of nasties.  ATM would not correctly set styles when a
  277. program used the suggested routine in ARKM:Libraries.  Fixed that somewhat
  278. but now I have a problem with DPaint IV again; looks like it calls
  279. OpenFont() to read existing fonts from memory.  When Excellence! left
  280. BoldItalic fonts in memory, DPaint found them.  So it looks like I need
  281. to patch OpenFont() in a similar manner to OpenDiskFont().  Or maybe I
  282. just need to complete the AvailFonts() patch; that should avoid this 
  283. particular problem.
  284. It also appears Excellence! doesn't use ALT keys for international
  285. characters.  This isn't my bug however.  Thphth.
  286. sourcecode: ATMbeta1d.c
  287.  
  288. 1 MAY 95
  289. Received a fax from Softwood (makers of Final Copy) and looks like they're
  290. interested in ATM!  Yahhh!  
  291. Worked on determining how AvailFonts() really behaves if I follow Commodore's
  292. suggested procedure (call AvailFonts() with a zero buffer, get the size, then
  293. call again to get the font list).  
  294.  
  295. 3 MAY 95
  296. Received ten letters from users wanting to beta-test ATM.  Among them are
  297. former C= employees, software houses with connections to ESCOM AG, and
  298. old friends in Winnipeg.  Even one from as far away as The Netherlands.
  299. God, I love The Internet.
  300. AvailFonts() does work with a zero buffer.  Perhaps I can improve the fcn
  301. slightly by reducing how often it goes out to the disk to check for fonts.
  302. I can gather the existing diskfonts, determine how much RAM the header
  303. takes, then fail any calls with a smaller buffer.  I'll still call the
  304. original fcn for RAM fonts and other fonts.  The idea is to insert ATM
  305. TextAttrs into the list, rather than using faked .font files, so apps
  306. know the ATM fonts exist.
  307. I must include AvailFonts() and fix the new DPaint style bug before I
  308. begin distributing Beta 3 to my new testers!
  309.  
  310. 6 MAY 95
  311. Finally corrected the style problem.  I had to make sure ATM works with
  312. programs that follow Commodore's suggested style scheme (OpenDiskFont with
  313. SetSoftStyle's enable bits taken from the new font) and those that 
  314. blatantly open the Normal style then SetSoftStyle.  By changing the font
  315. within the Text() patch I could do this and please both kinds of programs.
  316. I still build replacement styles but will change styles just before
  317. drawing characters.  
  318. With any luck I can now begin the AvailFonts() patch and prepare a shippable
  319. Beta 3 by tomorrow.  Fixing the style problem gives me new hope.
  320. source code: ATMbeta2.c
  321.  
  322. 7 MAY 95
  323. Began working on the AvailFonts() patch.  I managed to insert ATM TextAttrs
  324. into the list but I find I over-write memory by a few bytes (Mungwall)
  325. and read un-initalized memory too (Enforcer hits reading 0xDEADF00D).
  326. I'll correct this by just inserting TextAttrs (and not names or tags)
  327. into the list, and just have them point to names and tags stored in my
  328. executable's memory space.  That'll avoid the hassles of setting aside
  329. more RAM etc for extraneous data.
  330. However, the ATM fonts look like they show up in the system list.
  331. Excellence! will identify the ATM fonts but curiously it won't open them.
  332. This is most likely because ATM looks for files with the .atm extension
  333. and I omitted that.
  334. Yes, sure enough that was all it was.  Now Excellence! can recognize
  335. fonts that don't have the .font extension in FONTS: (meaning my ATM fonts)
  336. and open them, and use them.  Impressive.
  337. So, I need to double-check my memory usage and clean up the patch a bit,
  338. but Beta 3 release will be reality within this week.
  339. source code: ATMbeta3.c
  340.  
  341. 8 MAY 95
  342. Persistence pays off today.  After discovering stupid errors (like writing
  343. to TextAttr structs instead of AvailFonts structs like I'm SUPPOSED to)
  344. I succeeded in patching AvailFonts().  Now when an app calls AvailFonts()
  345. to get a font list, it gets all the ATM fonts too.
  346. Also fixed a bug in font listing; if there was only one ATM font it would
  347. exit with a bogus error.  Fixed.
  348. ATM Beta 3 release begins today.  Need to write new documentation to reflect
  349. the changes and such, but that will finish by tonight.  Now I need to see
  350. just how perfect the font engine REALLY is.  With any luck, I can begin
  351. work on the user interface and improve PostScript rendering speed, with a
  352. little help from a PostScript guru out there, somewhere.
  353. sourcecode: ATMbeta3.c
  354.  
  355. 13 MAY 95
  356. Released ATM Beta 3.  Discovered a bug of Prefs/Fonts vs DPaint IV; when
  357. I run Prefs/Font to select a font for Workbench, cancel, then run DPaint
  358. to select a font for typing, it GURUs (Processor exception 4).  Weird.
  359. It only happens if I run Prefs/Font.  On a related note, Excellence! will
  360. display multiple entries of the same font, one entry for each font I
  361. preview back in Prefs/Font.  Maybe DPaint's choking on multiple identical
  362. TextAttrs or something.  What is Prefs/Font (or most likely, asl.library)
  363. doing that I'm not accounting for?
  364. Fixed a silly style bug; if a program follows the ARKM:Libraries font
  365. opening rules it might not display any characters!  This is because I
  366. search for styles not present yet.  Fixed.
  367. Picked up a uuEncoder so I can send patches out easier via Internet.
  368. when I get my full access back on The Lounge (now "Dark Delusions")
  369. I can spread the patches.
  370. sourcecode: ATMbeta3a.c
  371.  
  372. 25 MAY 95
  373. Beta test reports beginning to trickle in.  Marcel Offermans from Holland
  374. is the most co-operative, uncovering a few nasty bugs:  ATM fonts showing
  375. up as "fixed width", and the panic exit problem.  I thought the lack of
  376. a FPF_PROPORTIONAL caused the problem with Prefs/Font, to no avail.
  377. At least I have much of a "Beta3b" up and running with these bugs fixed.
  378. All but one anyways... being the panic-exit.
  379. It looks like I need to "reboot" the PostScript interpreter after an error,
  380. because it just doesn't want to operate properly after a PS error.
  381. It's a simple matter, but it's still a pain.  Interactive PS never did that.
  382. Maybe the suggested hwgpost.library corrects that.  
  383. Regarding this new library... I E-MAILed the author, who incidenally, wrote
  384. his library based on the source from post.library 1.7.  Apparently he included
  385. some gateways to Display PostScript, which might make ATM useless.  Nahh.
  386. Also introduced a safety feature, which forbids exiting until all ATM fonts
  387. have an opencount of zero.  This should fix a problem Marcel had with one app
  388. that displayed some neato fonts (like "        .font", "#.font", "*.font", etc)
  389. after he exited and restarted ATM.  
  390. When I complete Beta 3B I'll begin distributing patches uuEncoded via E-MAIL.
  391. sourcecode: ATMbeta3b.c
  392.  
  393. 31 MAY 95
  394. Completed more patches to ATM Beta3b.  Fixed the "j" chopping and "'",
  395. but still get chopping with Courier at small sizes.  Much better, though.
  396. I'll improve it further.
  397. Time to start spreading this new version around.  I hope I get a response
  398. from SoftWood sometime soon, because I don't work for Seanix anymore.
  399. Thphth.  Will probably return to Winnipeg around 30 JUN 95.
  400. But that won't stop me from finishing ATM.  I have 30 days to find a new
  401. home, possibly find new work in Winnipeg, and lots of extra time to
  402. complete the ATM user interface.  
  403. Received original versions of Times, Helvetica, Symbol, and Courier, so
  404. I can fix my spacing bugs.  Turns out I glitched back in MakeATMFont(), so
  405. that's fixed.
  406. sourcecode: ATMbeta3b.c
  407.  
  408. 23 JUN 95
  409. Three weeks later, looking for work.  Managed to complete a makeshift
  410. Shell detachment for ATM (just a Execute("Run "argv[0], 0, 0) to do it) but
  411. it does the job.  
  412. Also completed a command receiving mechanism.  For now it just looks for 
  413. -exit which causes ATM to unload.  Wrestled with some nasty Enforcer hits
  414. but fixed that.  
  415. Got a real Internet address now, so I'll start distributing Beta3d to my
  416. beta testers.
  417. sourcecode: ATMbeta3d.c
  418.  
  419. 28 JUN 95
  420. Searching for work.  Fixed duplicate font name problem with Excellence!
  421. vs Prefs/Font but DPaint still don't work.  Apparently it's a bug with
  422. my copy of DPaint, because DPaint IV AGA doesn't do it according to beta
  423. testers.
  424. SoftWood doesn't have time to test ATM but they might be interested in
  425. marketing it.  The font engine's pretty much bug-proof, now all I need
  426. is a nice way of installing fonts and a nice control panel.  Also picked
  427. up a GUI editor for gadtools.library.  That should simplify the ATM
  428. interface construction considerably.
  429. Plans for releasing a "crippleware" ATM in mind... such crippling
  430. includes: no fancy installer for fonts, force user to use post.library
  431. instead of hwgpost.library, use un-optimized PostScript code.  
  432. Full commercial release of ATM should have: capability to use hwgpost,
  433. nice font installer, lots of options via an ATM control panel commodity
  434. (actually not many options; just font install/remove and edit sizes
  435. available to AvailFonts()), and use optimized PS code to make the
  436. commercial version faster.  
  437.  
  438. 30 JUN 95
  439. Distributed new ATMbeta3d.  Constructed mailing list on Vancouver Freenet
  440. for further ATM transmissions etc.  Now I have to start handling the
  441. gadtools editor and new GUI I began constructing.  Geez, Intuition isn't
  442. my forte on The Amiga... I need to get working on that.
  443.  
  444. 7 JUL 95 (Happy birthday sister Lou)
  445. Received acknowledgement from comp.binaries.amiga moderator, possibility
  446. that beta3d might not pass the requirements, because they don't like
  447. beta software on the net.  I make sure that 3d worked well and didn't
  448. trash the system though.
  449. Now working on Beta 4.  This Beta introduces many parameters to ATM that
  450. match the options I plan on using in ATM Control Panel:
  451. -Enable/Disable soft styles on ATM type
  452. -Show only ATM typefaces/Show all Amiga & ATM typefaces
  453. -Show/Hide trace messages (same as OPTTRACE)
  454. -Show/Hide all PS command (same as OPTDEBUG)
  455. -Change shown point sizes for apps (Default 72 max, increment 6)
  456. -Rebuild ATM font list in memory (suitable after user adds typefaces)
  457. These options will all work from the command line or from
  458. ATM Control Panel.
  459. Working on separate "Prefs" style program, the ATM Control Panel.  This
  460. will send parameter switches to the ATM main executable.  Look and
  461. feel will be a cross between Amiga Prefs programs and ATM Control Panel
  462. for MS-Windows.
  463. The Beta4 executable is almost finished except for the soft style switch.
  464. I will pass this executable and IFF pictures of the new interface to
  465. beta testers when complete.  I hope Beta 4 will have optimised PS code
  466. before I release it, but I still can't get any help from PS programmers
  467. out there.  Maybe I'll just dump a section of ATM's source onto
  468. comp.lang.postscript and see if I can get help there.
  469. Still to come are legal issues; I never received any acknowledgement
  470. from Adobe Systems regarding their trademark.  I have to wonder if they
  471. even care.
  472. Adobe Type Manager for The Amiga is now one year into its development.
  473. Happy Birthday.
  474. sourcecode: ATMbeta4a.c
  475.  
  476. 19 JUL 95
  477. Thanks to a friend across the Internet in comp.lang.postscript I managed
  478. to whittle down the PS code needed to draw chars in the MakeATMChars()
  479. function.  Drawing the whole charset now only takes 8 seconds, beating out
  480. CG fonts by a whole four seconds!  Thphth!
  481. Also fixed a problem in KS 3.0.  In KS 3.0, OpenDiskFont() does not call
  482. OpenFont() after it loads a font.  So, I have to check the open font
  483. count by traversing the system font list instead.  This works fine.
  484. Still angered by a problem my AvailFonts() patch causes in some apps,
  485. now in FW III it will GURU 8100 FF00 for an unknown reason.  It's for
  486. sure in exec.library.  I need serious CATS help though none exists.
  487. ATM seems to loose 3432 bytes every time it runs.  I am freeing all
  488. memory I allocate.  At first I thought it was because I wasn't
  489. StripFont()ing all ATM fonts before removing them, but that wasn't it.
  490. The one big loss of 3328 bytes is unexplainable!!!  Maybe post.library
  491. did this.
  492. I will release Beta 4B to beta testers this coming morning when Freenet
  493. is quieter.
  494. sourcecode: ATMbeta4b.c
  495.  
  496. 2 AUG 95
  497. A long time between entries indeed.  I included a low memory handler that
  498. patches to Expunge() from diskfont.library, which dumps unopened fonts and
  499. restarts the PS interpreter to clear unused typefaces from PostScript VM.
  500. This version I sent to Amiga Computing Magazine for publication in their
  501. October issue.
  502. Name change: Adobe Systems says No Way Jose to Amiga ATM.  Thphth.  I'll
  503. just call it something different: Amiga Typeface Engine (ATE).  There.
  504. The name will probably change one more time.
  505. I still get requests for ATMbeta3d though.  They're still going out there.
  506. Doenloaded HWGpost beta 6 from AmiNet courtesy of a new co-worker at
  507. In-Line support.  Yes, I'm employed again!  Windows 95 TCP/IP rules 
  508. unfortunately.  At least Microsoft got something right.
  509. Losing more memory!  Geez, now it's 12 KB lost.  I think that was post
  510. doing that.  I hope HWG's post will fix this memory loss.  Accomodating
  511. HWG Post will require a PS re-write and re-defining many postlib structs
  512. I use, and it will show up in Beta 5.  Mr HWG (Heinz Wrobel... where did
  513. the "G" come from I wonder...) will probably get the very first copy
  514. of ATE beta 5.
  515. sourcecode: ATEbeta4c.c
  516.  
  517. 9 AUG 95
  518. ATEbeta5 goes to beta testers and Mr Wrobel finds an Enforcer hit... fixed
  519. that.
  520. Beta5a is gone out and Mr Wrobel doesn't like the hacking job I did so
  521. far.  He and one other person suggests the bullet route; where diskfont.lib
  522. calls a rendering engine library to build diskfonts.  This is already done
  523. in type1.library, but this takes 30 seconds to draw an entire font...
  524. After arguing with HWG over this for the past week, I'm beginning to think
  525. of a hybrid plan... Build a rendering library as per type1, and as a user
  526. option build a Text() "daemon" as he calls it, which draws glyphs into the
  527. diskfont as needed, but only as an OPTION, because some apps still don't
  528. call Text() to do their drawing (IE: Video Toaster...)
  529. The only problem I see with this approach is maintaining a fontnode list
  530. externally.  When such a lib builds an "empty" font, It could send a message
  531. to the Text() daemon with the TextFont pointer, then the daemon would
  532. make a FontNode and fill in the TextFont as necessary.  I wonder just
  533. how safe that is... what happens when diskfont.lib wants to expunge a bunch
  534. of fonts while the daemon renders?  And the daemon should still provide
  535. true styles if apps cheat via SetSoftStyle().  Wow... that could prove
  536. quite an undertaking... but then again... my original ATM idea was quite
  537. an undertaking... :)
  538. hwgpost wasn't causing my memory loss it turns out... I need to check
  539. deeper in the lists and find out where all these little bits of RAM
  540. are going to...
  541. I should post this crazy hybrid idea to the rest of the testers and see
  542. what they think.  
  543. sourcecode: atebeta5a.c
  544.  
  545. 25 FEB 96
  546. (No ATE development since AUG 95 because of serious employment!)
  547. (sigh) How can I be having too much fun working on Windows NT to be working
  548. on ATE?  Makes about no sense at all.  
  549. ATEbeta5b is complete and still has little bits of RAM left over, but
  550. I'm convinced it's not my fault.  
  551. In the time between ATEbeta4c and now, I whipped up a Beta4d which removes
  552. post V17 dependancies and released it to comp.binaries.amiga.  I also 
  553. posted a message on comp.sys.amiga.announce asking for help, and tomorrow I
  554. will release this source code to those who replied.  My plea for help
  555. showed up in Amiga Report magazine, so maybe one day this will show up on
  556. comp.sources.amiga and Aminet to let others dabble and hack.
  557. To those who dabble and hack: if you finish it, release it, and make it
  558. great!
  559.